#include "ThreadPool.hpp"
#include "Task.h"
#include <unistd.h>
using namespace std;

int main() {
    ThreadPool<Task>::getSingleton()->boost();

    int x, y;
    char op;

    sleep(1);

    //! 目前这里有个bug，当输入的xy不符合时，线程池会一直获取无效任务，这是非常危险的！
    //! 所以这里还需要增加对输入数字的判断，不然流输入运算符的异常会一直影响线程池
    //! 并导致线程池无法使用
    while (true) {

        cout << "请输入参数1 #";
        cin >> x;
        cout << "请输入参数2 #";
        cin >> y;
        cout << "请输入你要进行的运算 #";
        cin >> op;

        ThreadPool<Task>::getSingleton()->push(Task(x, y, op, calculate));

        sleep(1);
    }
    
    return 0;
}